export function makeSettingList(that, sensor) {
  const settingComponent = {
    'title': that.$t('setting') + ' [' + that.$t('port') + ':' + sensor.port + ']',
    'icon': sensor.iconUrl,
    'opened': false,
    'items': []
  }
  sensor.settingList.forEach(setting => {
    settingComponent.items.push({
      'text': setting.name,
      'icon': setting.iconUrl,
      'iconType': 'png',
      'info': {
        'type': 'iot-device-setting',
        'action': [],
        'dataBind': {
          'editModel': true,
          'name': setting.name,
          'deviceId': setting.deviceId,
          'port': setting.port,
          'keyName': setting.keyName
        },
        'style': {
          'radius': 0,
          'position': {
            'x': 0,
            'y': 0,
            'w': 300,
            'h': 50,
            'xUnit': 'px',
            'yUnit': 'px',
            'wUnit': 'px',
            'hUnit': 'px'
          },
          'bgColor': 'transparent',
          'zIndex': 1,
          'url': ''
        }
      }
    })
  })
  return settingComponent
}

export function makeExplainList(that, sensor) {
  const explainComponent = {
    'title': that.$t('explain') + ' [' + that.$t('port') + ':' + sensor.port + ']',
    'icon': sensor.iconUrl,
    'opened': false,
    'items': []
  }
  sensor.explainList.forEach(explain => {
    explainComponent.items.push({
      'text': explain.name,
      'icon': explain.iconUrl,
      'iconType': 'png',
      'info': {
        'type': 'iot-device-explain',
        'action': [],
        'dataBind': {
          'editModel': true,
          'name': explain.name,
          'deviceId': explain.deviceId,
          'showTypeList': [{
            'label': that.$t('text'),
            'value': 'text'
          }, {
            'label': that.$t('curve'),
            'value': 'curve'
          }, {
            'label': that.$t('value'),
            'value': 'value'
          }, {
            'label': that.$t('value') + that.$t('unit'),
            'value': 'valueWithUnit'
          }, {
            'label': that.$t('name') + that.$t('value') + that.$t('unit'),
            'value': 'nameWithValueWithUnit'
          }],
          'showType': 'text',
          'port': explain.port,
          'keyName': explain.keyName
        },
        'style': {
          'radius': 0,
          'position': {
            'x': 0,
            'y': 0,
            'w': 100,
            'h': 50,
            'xUnit': 'px',
            'yUnit': 'px',
            'wUnit': 'px',
            'hUnit': 'px'
          },
          'bgColor': 'transparent',
          'zIndex': 1,
          'url': ''
        }
      }
    })
  })
  return explainComponent
}

export function makeParamList(that, sensor) {
  const paramComponent = {
    'title': that.$t('param') + ' [' + that.$t('port') + ':' + sensor.port + ']',
    'icon': sensor.iconUrl,
    'opened': false,
    'items': []
  }
  sensor.paramList.forEach(param => {
    paramComponent.items.push({
      'text': param.name,
      'icon': param.iconUrl,
      'iconType': 'png',
      'info': {
        'showType': 'text',
        'type': 'iot-device-param',
        'action': [],
        'dataBind': {
          'editModel': true,
          'name': param.name,
          'deviceId': param.deviceId,
          'showTypeList': [{
            'label': that.$t('text'),
            'value': 'text'
          }, {
            'label': that.$t('value'),
            'value': 'value'
          }, {
            'label': that.$t('value') + that.$t('unit'),
            'value': 'valueWithUnit'
          }, {
            'label': that.$t('name') + that.$t('value') + that.$t('unit'),
            'value': 'nameWithValueWithUnit'
          }],
          'showType': 'text',
          'port': param.port,
          'keyName': param.keyName
        },
        'style': {
          'radius': 0,
          'position': {
            'x': 0,
            'y': 0,
            'w': 100,
            'h': 50,
            'xUnit': 'px',
            'yUnit': 'px',
            'wUnit': 'px',
            'hUnit': 'px'
          },
          'bgColor': 'transparent',
          'zIndex': 1,
          'url': ''
        }
      }
    })
  })
  return paramComponent
}
